home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Shareware World / Info / For Developers / Smile1.6.6.sea / Smile1.6.6 / Smile ƒ / Help files / Satimage osax < prev    next >
Text File  |  1999-07-19  |  9KB  |  187 lines

  1. The Satimage osax
  2.  
  3.  
  4. "Osax" stands for Open Scripting Architecture eXtension, the other name for "scripting addition." 
  5.  
  6. Some of the functions of Smile, together with some additional functionalities, have been compiled into an independent scripting addition : Satimage osax. You can of course use the functions that it provides, independently of using Smile.
  7.  
  8. The Satimage osax must be installed for Smile to be fully functional. 
  9.  
  10. Using the "Open dictionary" command of the "File" menu, you can open the dictionary of the Satimage osax. (Note : the "Open dictionary" command can also be used to open the dictionary of any installed scripting addition (osax).) The present help file introduces this osax with additional details and examples. Please refer to the Satimage osax dictionary itself for the syntax of any command.
  11.  
  12. The commands of the Satimage osax are given below in a thematic order : strings, lists and records, files, resources, and maths.
  13.  
  14. Reminder : To try the below example scripts for yourself, open an output window associated with this help file. Any results occurring from running the script will then appear in the output window, rather than being appended at the end of this help file window. 
  15.  
  16.  
  17. String manipulation
  18.  
  19. • extract string : extract a substring
  20. Negative indexes start from the end (far right side) of the string.
  21. Sample
  22. ----------------------------
  23. set theTime to "12:34:56"
  24. set theSeconds to extract string theTime from -2 to -1
  25.   --  "56"
  26. ----------------------------
  27.  
  28. • uppercase : move to upper case
  29. Uppercase is useful to make case insensitive searches or comparisons.
  30. Sample
  31. ----------------------------
  32. set theName to "AppleScript"
  33. set theName to uppercase theName
  34.   --  "APPLESCRIPT"
  35. ----------------------------
  36.  
  37. • replace : replace all occurences of a substring
  38. Sample
  39. ----------------------------
  40. set theString to "12:34:56"
  41. set theFileName to replace ":" by "-" in theString
  42.   --  "12-34-56"
  43. ----------------------------
  44.  
  45. • format : format a real number into a string
  46. If the real number does not fit the format string, a standard format will be used. It may use the decimal notation.
  47. Sample
  48. ----------------------------
  49. format pi into "###000.0000'...'"
  50.   --  "003.1416..."
  51. ----------------------------
  52.  
  53.  
  54. Lists and records manipulation
  55.  
  56. • concat : concatenates records, using a sum rule on the items
  57. Sample
  58. ----------------------------
  59. set theStore to {books:12, pens:{black:50, green:50}, copybooks:3}
  60. set theDelivery to {books:5, pens:{black:50, red:20}, eraser:1}
  61. set theStore to concat theStore with theDelivery
  62.   --  {books:17, pens:{black:100, green:50, red:20}, copybooks:3, eraser:1}
  63. ----------------------------
  64.  
  65. • suppress item : delete an item from a list or a record
  66. Depending if a key in a record is user-defined or defined by the application (or AppleScript), you need or need not enclose its title between quotes. 
  67. Samples
  68. ----------------------------
  69. set theG3s to {"Blue", "White", "Beige"}
  70. set theNewG3 to suppress item -1 from theG3s
  71.   --  {"Blue", "White"}
  72. ----------------------------
  73.  
  74. ----------------------------
  75. set theStore to {books:12, pens:{black:50, green:50}, copybooks:3}
  76. set thePaper to suppress item "pens" from theStore -- pens is a user property
  77.   --  {books:12, copybooks:3}
  78. ----------------------------
  79.  
  80. ----------------------------
  81. set theRecord to {name:"Bob", age:33}
  82. set theAge to suppress item name from theRecord -- name is pre-defined
  83.   --  {age:33}
  84. ----------------------------
  85.  
  86.  
  87. File management
  88.  
  89. • applicationpath : find an application file (or application files) given a creator type in a given volume
  90. When the "list all" argument is false, the command returns the last modified application with the given creator type in the given volume. This may be or not be the way "Finder" chooses what application it will open when you double-click a document - in the case where several applications with the same creator type are on the same volume.
  91. Sample
  92. ----------------------------
  93. applicationpath "VIZF" in path to startup disk
  94.   --  file "160GB HD:Desktop Folder:Smile 1.6:Smile ƒ:Smile"
  95. ----------------------------
  96.  
  97. • get alias info for : returns a list of 3 strings, the names of the AppleTalk zone, of the machine, and of the volume, a given file (or alias) belongs to.
  98. This command is intended, among other things, to provide some workaround to a deep bug of the "Finder", namely its unability to distinguish properly in AppleScript between different file specifications with the same name when they are on the Desktop.
  99. Sample
  100. ----------------------------
  101. remote info for alias (my path name)
  102.   --  {"RedZone", "G4/800", "160GB HD"}
  103. ----------------------------
  104.  
  105. • backup : synchronizes 2 folders
  106. The arguments of the command can be aliases of folders, instead of folders.
  107. The output of this command, in level 0 (resp. 2), lists the files to be (resp. which have been) modified or created. As the comments are in French, you need know that "Eléments mis à jour" means updating, "Eléments créés" means creating, and "RAS" means "nothing to report".
  108. Comments
  109. The dictionary mentions that the "backup" command is not entirely safe. So far, the only known bug concerns the backup of empty folders. It is not known as possibly inducing data loss.
  110. General form 
  111. ----------------------------
  112. backup <pathname of source folder> onto <pathname of target folder> level 2
  113. ----------------------------
  114.  
  115. Sample
  116. ----------------------------
  117. backup "160GB HD:Claris Emailer:Claris Emailer Files:Filing Cabinet" onto "Mail Zip, jan 2001" level 2
  118. -- returns the lists of the created / modified folders / files
  119. ----------------------------
  120.  
  121. Resource management
  122.  
  123. The Satimage osax provides facilities to read and write resources from / to the resource fork of a file. This can prove useful for a lot of technical operations on your Macintosh.
  124.  
  125. • LoadResource : get a resource of a specified type and id number from a specified file
  126. Sample
  127. ----------------------------
  128. LoadResource 4000 type "STR " from "" & (path to system folder) & "Finder"
  129. --  "About This Computer…"
  130. ----------------------------
  131.  
  132. • ListResources : get the list of the id numbers of resources of a specified type a the specified file
  133. Sample
  134. ----------------------------
  135. ListResources "PICT" from "" & (path to system folder) & "Finder"
  136.   --  {4000, 4001}
  137. ----------------------------
  138.  
  139. • GetResourceName : get the name of a resource of specified type and id number from the specified file
  140. Sample
  141. ----------------------------
  142. GetResourceName 6 type "CODE" from "" & (path to system folder) & "Finder"
  143.    --  "CFM Launch"
  144. ----------------------------
  145.  
  146. • PutResource : write the given resource to the specified file with specified type and id number
  147. This command will write to the disk, and will erase any existing resource of the specified file with the same type and the same id number. If you make a mistake, this can mean data loss.
  148. Sample
  149. ----------------------------
  150. set theRect to {20,40,120,140}
  151. PutResource theRect index 128 type "qdrt" to (new file)
  152. ----------------------------
  153.  
  154.  
  155. Maths
  156.  
  157. • cos, sin, acos, asin, tan, atan2, atan, sqrt, ln, log10, exp
  158. Comments
  159. The angles must be given in radians (rad). If an angle is given in degrees (°), multiply it by (pi/180) before calling any trigonometric function.
  160. Sample
  161. ----------------------------
  162. 2 * (atan2 {1, 0}) -- {opposite side, adjacent side} 
  163.   --  3.14159265359
  164. ----------------------------
  165.  
  166. ========================================================
  167.  
  168. Advanced
  169.  
  170. • The default name given to a resource by "PutResource" is the four character code of the AppleScript data type. "LoadResource" uses this name to coerce the data stored in the resource into the AppleScript type, except if you force coercion by a call to "LoadResource … as …". Thus you should not give a four character name to a resource unless you know what you are doing.
  171. You can use this feature to force the type of the data. For instance, if you store a list of four integers with :
  172. ----------------------------
  173. PutResource theRect index 128 type "qdrt" to MyFile
  174. ----------------------------
  175.  
  176. then the corresponding "LoadResource" will create a QuickDraw bounds type.
  177.  
  178. • "LoadResource" is particularly useful for storing scripts. When you want to load a script which is stored in the resource fork, always force the coercion into a fake type, such as :
  179. ----------------------------
  180. LoadResource 129 type "scpt" from MyFile as "foo "
  181. ----------------------------
  182.  
  183. Otherwise, "LoadResource" will return, not the script, but the result of the script, that is, the returned value of the "run" handler of the script.
  184. When storing a script in the resource fork (by "PutResource"), always give it a name which does not have four characters.
  185.  
  186. ========================================================
  187.